Automated usage driven engineering

ABSTRACT

Implementations directed to providing a computer-implemented method for automating vehicle feature updates, the method being executed by one or more processors and comprising receiving telematics data identifying an actual usage of a vehicle; performing a gap analysis between the actual usage of the vehicle and an expected usage of the vehicle; determining a feature update based on the gap analysis; providing the feature update to a product engineering module when the feature cannot be implemented by a software update; and providing the feature update to an onboard computer system when the feature can be implemented by a software update.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.16/041,287, filed on Jul. 20, 2018, entitled “Automated Usage DrivenEngineering,” which claims priority to U.S. Provisional Application No.62/567,337, filed on Oct. 3, 2017, entitled “Automated Usage DrivenEngineering,” the entirety of which are hereby incorporated byreference.

BACKGROUND

Innovative vehicle design and engineering breeds complexity. Manyvehicle systems can be naturally identified and broken down intoindividual subsystems and components. However, that breakdown may notaccount for many of the multi-domain interactions across sub-systems.Additionally, obtaining and integrating actual system usage, withincorresponding driving contexts, into potential feature and/or designupdates for a next model or new class of vehicle poses challenges.

SUMMARY

Implementations of the present disclosure are generally directed toautomating vehicle feature updates. More specifically, implementationsare directed to an automated system that closes the loop between vehicleusage and the design/engineering process.

In some implementations, actions include receiving telematics dataidentifying an actual usage of a vehicle, performing a gap analysisbetween the actual usage of the vehicle and an expected usage of thevehicle, determining a feature update based on the gap analysis,providing the feature update to a product engineering module when thefeature cannot be implemented by a software update, and providing thefeature update to an onboard computer system when the feature can beimplemented by a software update. Other implementations of this aspectinclude corresponding systems, apparatus, and computer programs,configured to perform the actions of the methods, encoded on computerstorage devices.

In some implementations, actions include assigning a weight value to thefeature update based on the gap analysis where providing the featureupdate to the product engineering module or the onboard computer systemis determinative based on the assigned weight value meeting a threshold.Other implementations of this aspect include corresponding systems,apparatus, and computer programs, configured to perform the actions ofthe methods, encoded on computer storage devices.

These and other implementations can each optionally include one or moreof the following features: the feature update is a modification to asoftware component of the vehicle, the software component is a displayfeature shown on an adaptable display in the vehicle, the telematicsdata is collected by a plurality of onboard sensors associated with thevehicle, the telematics data includes internal and external informationcollected by the onboard sensors, the feature update is a correctiveaction, the product engineering module validates the feature update,where validating the feature updates includes employing virtual reality,digital simulation, or micro-factories within a respective region, andthe feature update is integrated into a next version of the model of thevehicle once validated by the product engineering module.

It is appreciated that methods in accordance with the present disclosurecan include any combination of the aspects and features describedherein. That is, methods in accordance with the present disclosure arenot limited to the combinations of aspects and features specificallydescribed herein, but also include any combination of the aspects andfeatures provided.

The details of one or more implementations of the present disclosure areset forth in the accompanying drawings and the description below. Otherfeatures and advantages of the present disclosure will be apparent fromthe description and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 depicts an example Automated Usage Driven Engineering System.

FIG. 2 depicts another example Automated Usage Driven EngineeringSystem.

FIG. 3 depicts a flow diagram of an example process for employing anAutomated Usage Driven Engineering System to automate vehicle featureupdates.

DETAILED DESCRIPTION

Onboard systems, such as global positioning systems (GPS), andtelematics sensors can be used to collect and provide diagnosticsregarding the usage of, and the interaction between, the various vehiclesystems and sub-systems (e.g., the vehicle's operations). For example,by combining a GPS system with onboard sensors data and diagnostics, arecord can be created regarding the exact route taken by a particularvehicle during a trip as well as the various speeds and accelerationsfor the vehicle along the route. Furthermore, this information may becross referenced (e.g., temporally) with the behavior of the vehicle'susers (e.g., the driver and any passengers) in the vehicle during such atrip. These behaviors may include the interactions between users as wellas between the users and the various subsystems and controls of thevehicle.

In view of the foregoing, implementations of the present disclosure aregenerally directed to a system that closes the loop between actualvehicle usage and the vehicle design/engineering process. Telematicsdata, which can be collected by both internal and external sensors, mayindicate actual usage and operation of a respective vehicle and providethe context and conditions (e.g., environmental conditions) in which theusage occurred. This telematics data may be provided to, for example, acentral server or cloud. The telematics data collected from multiplevehicles (and the vehicle's users) may be aggregated to perform a gapanalysis. Such a gap analysis may be between expected usage and actualusage of the various systems and sub-systems for a particular type orclass of vehicle. Additionally, gap analysis may take into account thevarious contexts and conditions during the respective usage. Using, forexample, machine learning, the system can weight potential featureupdates and determine, automatically or with human involvement, whichfeature updates to provide. Additionally, the system may also determinesoftware updates to provide to vehicles currently on the road as well aswhich software update to implement in the next model by way of, forexample, the product engineering process. In this way, the describedsystem can tailor a driver and passenger experience and/or alter anaspect of a vehicle based on actual usage.

FIG. 1 depicts an example automated usage driven engineering system 100.The example system 100 includes vehicles 110, cloud-based analyticmodules and rules engine 120, and product engineering 130. The examplesystem may be provided using one or more computing device(s) of anysuitable number and type. Configuration of such computing devices mayinclude shared, virtual, managed/dedicated, cluster/grid, cloud basedresources, and/or any combination thereof. In the depicted example, thecloud-based analytic modules and rules engine 120 may be deployed to anyspecial purpose computer system or cloud-based services. Suchcloud-based services cover a wide range of resources that may be madeavailable through, for example, the Internet. In this context, suchservices may be referred to generally as “the cloud.”

Configurations of the cloud-based analytic modules and rules engine 120provide a service to collect various sensor information from and sendcommand and software configuration updates to vehicles 110. The vehicle110 may be any type of a machine used for transportation of people orgoods, such as a car, truck, or boat. In the depicted example, variousmodels of cars are shown. As users (e.g., drivers and passengers)interact with vehicle 110, various internal and external onboard sensorsmay collect and record information relating to, for example, userinteractions with various vehicle components, external environmentalconditions (e.g., temperature, humidity, and global positioning), andinternal component states, such as engine revolutions per minute (RPMs)and tire pressure. The onboard sensors are described in greater detailin FIG. 2. In the depicted example, three vehicles are shown; however,the system can collect from and send information to any number ofvehicles.

The various information collected from the onboard sensors from vehicles110 may be provided to the cloud-based analytic modules and rules engine120, which may employ the collected information to determine if, forexample, a new feature is successfully being triggered at an intendedmoment and/or outside of the designed situations. The cloud-basedanalytic modules and rules engine 120 may employ an algorithm toaggregate the collected information from across many vehicles 110 andcompare expected usage for a particular feature or function to actualusage. The cloud-based analytic modules and rules engine 120 may alsoaggregate collected external environmental information to correlatecontextual data to the aggregated feature and function data.

As an example, vehicle features and command functions may be implementedwith an intended usage. By aggregating sensor information overtime froma particular vehicle 110, as well as from various like or similarvehicle models, the cloud-based analytic modules and rules engine 120can compare numerous factors to determine, for example, both useractions and respective causation for users' actions as potentialsolutions, such as feature updates, may vary in effectiveness ataddressing a particular issue. In this way, the cloud-based analyticmodules and rules engine 120 may determine and analyze proposedsolutions to various issues within various contexts. For example,solutions may vary between a number of training prompts necessary toexplain a function, the relocation of interactive and functionalbuttons, variations to adaptive digital user interfaces, and/or acomplete feature redesign. Such analysis may provide, for example,unexpected insights. Furthermore, regional and/or demographic factorsmay influence how well a solution addresses an issue.

In some implementations, potential feature updates, such as a correctiveaction, that are determined by cloud-based analytic modules and rulesengine 120, may be triggered through updates to software that isdeployed to vehicle's 110 onboard computer systems. In suchimplementations, various potential feature updates may go through atrial process. Such a trial process may include A-B or split testing. Insome implementations, A-B testing includes a number of the featureupdates that are deployed individually or based on groupings of thevehicles 110. These deployed features are tested through the automatedusage driven engineering system 100 to determine comparative resultsbetween the potential feature updates. The trial process results may becompared through cloud-based analytic modules and rules engine 120 toselect a feature update with, for example, a better conversation rate.Once a potential feature is selected, it can be deployed to all of themodels of a vehicles or a subset of models. For example, the selectedfeature may be deployed to a number of vehicles in a particularregion(s).

In some implementations, the determined potential feature updates may beprovided from cloud-based analytic modules and rules engine 120 toproduct engineer 130 for further analysis. Product engineering 130 mayinclude automated and/or manual processes that review the potentialfeature and make recommendations for next vehicle product lines. Therecommendations may be global or regional changes/updates. Regionalupdates can include configuration updates to address a concern or issuein a particular market.

In some implementations, a feature update may be selected by productengineering 130 to be deployed to current vehicle models, such asvehicles 110. Such feature updates, may be deployed through a softwareupdate to the fleet of active models. For example, menu screen positionsmay be adjusted by a User Experience (UX) designer. Alternatively, menuscreen positions may be switched programmatically as guided by anartificial intelligence component of product engineering 130. Such anartificial intelligence component may, for example, assess usabilityheuristics. In some implementations, the changes may be pushed to asubset of vehicles that are currently on the road. Additionally, theautomated usage driven engineering system 100 may be employed to collectonboard sensor data to analyze and compare with onboard sensor datacollected from other like vehicles models. These other vehicle modelsmay be selected for comparison based on, for example, geolocation, userdemographics, and/or other identified user sub sets.

Feature updates selected by product engineering 130 may involve updatingor replacing physical component of vehicles 110. Product engineering 130may validate received potential feature updates for selection through,for example, virtual reality, digital simulations, prototypesvehicle/components, or in micro-factories, which may be configured baseon regional and/or demographic data. Once a feature has been validated,it may be selected by product engineering 130 to be incorporated into anext model of a vehicle. Additionally, more complex and mechanicalfeature changes may be categorized by product engineering 130 based on apriority list. For example, categorization may be based on safetyimpact, population affected, ease to affect, and so forth.

In some implementations, product engineering 130 may be employed in adesign lifecycle for a new vehicle. Such a design lifecycle may take upto and over in some cases three-year of research lead time. By employingthe automated usage driven engineering system 100, product engineers maybe able to assess the feasibility of incorporating features into vehicledesign mid-way through such a design process. For example, a featurechange that might be cause for safety concerns can be reviewed bytrained engineers and also undergo legal safety assessments before beingselected and deployed. Additionally, product engineering 130 maydetermine a set of instructions to educate vehicle users regarding aselected feature update. Vehicle users may receive instructionsregarding a newly pushed feature through, for example, a display panelcomponent of vehicle 110. In some implementations, vehicle users may beallowed to option out and not participate in a feature update.

FIG. 2 depicts another example automated usage driven engineering system200. The example system 200 includes components and actors that aresubstantially similar and function in a similar manner to the componentsof the automated usage driven engineering system 100 such as vehicle210, analytic modules and rules engine 220, and product engineering 230.In the depicted example, vehicle 210 includes onboard sensors 212, whichinclude both external 219 and internal 218 sensors; onboard computer214; and contextual/adaptable display 216. In the depicted example, theanalytic modules and rules engine 220 includes gap analysis component222, data aggregator component 224, and configuration adjustmentcomponent 226.

In some implementations, the contextual/adaptable display 216 displaysvarious information about the vehicle 210 and its operation to the usersof the vehicle 210. The contextual/adaptable display 216 may alsodisplay controls for various internal functions of the vehicle 210. Forexample, contextual/adaptable display 216 may display the current GPSlocation, speed, and/or cruise control settings.

The onboard computer 214 includes a central processing unit (CPU), amemory, and a communication component. The CPU carries out programminginstructions by performing the arithmetic, logical, control andinput/output (I/O) operations specified by the instructions. The memoryis a device capable of storing information. The communicationscomponent, such as a transceiver, may be used to send and receiveinformation to/from, for example, the analytic modules and rules engine220.

The onboard sensors 212 are devices that may detect and/or measure aphysical or virtual property relating to vehicle 210. The internalsensors 218 measure information regarding, for example, a vehicle user'sinteractions with the operations (e.g., the features and/or controls) ofthe vehicle 210 as well as internal information regarding the internalsystems of the vehicle 210, such as the engine, cooling/heating systems,braking systems, and so forth. The external sensors 219 measureinformation regarding, for example, the environment surrounding vehicle210, such as humidity and temperature, as well as positioninginformation, such as GPS.

The onboard sensors 212 in conjunction with the onboard computer 214 maybe employed within the automated usage driven engineering system 200 tomonitor and/or record vehicle telematics or a state(s) of vehicle 210.In some implementations, the onboard sensors 212 may measure dataregarding driving habits of vehicle users. For example, the onboardsensors 212 may measure and, along with the onboard computer 214,monitor during, for example, a trip the number of miles driven; thespeeds at which vehicle travels; the engine RPMs; braking patterns;external weather conditions, such as humidity and temperature; the GPSlocations of the vehicle 210; and/or any interactions with features andcontrols of the vehicle 210 by users. Such monitoring may be based onthe integration of the onboard sensors 212 into vehicle 210 such thatimportant functional features and controls of the vehicle 210 may bemonitored.

As depicted in FIG. 2, the gap analysis component 222 is configured toreceive, from the vehicle 210, the information collected from theonboard sensors 212. The gap analysis component 222 may perform gapanalysis on the collected data. Such gap analysis may includedifferences between expected usage and actual usage for the variouscontrols and systems within the respective vehicle 210. In someimplementations, gap analysis includes techniques that are employed todetermine a step or a series of steps to move from a current state orimplementation to a desired or future state. Gap analysis may include,for example, the listing of characteristic factors, such as attributes,competencies, and performance levels of a present implementations;listing factors to achieve future objectives; and highlighting the gapsthat exist. The gap analysis component 222 may compare the actions takenby the users of vehicle 210 with potential or desired actions. Theseactions may also be compared within various context. From thiscomparison, the gap analysis component 222 may determine potentialfeature update(s) for the current and/or or next vehicle model of thevehicle 210.

The gap analysis component 222 may identify a ‘time in use’ for anomalydetection of ‘wrong button’ type failures. For example, windshieldwipers on the vehicle 210 may be turned on and then off followed closelyby activation of the high beam headlights. As another example, a windowbeing may be rolled down and then immediately rolled up followed closelyby another window being rolled down. Such a series of actions mayindicate an unintentional activation of a lever or button (e.g., thewindshield wipers lever or the window rolled down/up button). Similarexamples include data regarding radio controls, gear shifting, enginestart, temperature controls, latch release leavers (e.g., gas cap,trunk, and hood), remote controls, mirror controls, window defrostcontrols, seat controls, and so forth.

The gap analysis component 222 may provide the collected vehicle dataand the results of the gap analysis to the data aggregator component224. The data aggregator component 224 may also receive collectedvehicle data and gap analysis regarding other vehicles. The dataaggregator component 224 may aggregate the collected data based on, forexample, the vehicle model and/or region or demographic information. Thedata aggregator component 224 may provide the aggregated vehicle data tothe configuration adjustment component 226.

The configuration adjustment component 226 may employ the aggregateddata to determine feature update(s) for a particular model, a modelline, and/or group of vehicles. For examples, the configurationadjustment component 226 may employ a machine learning algorithm to theaggregated vehicle data to select which issues to resolve with a moreimmediate software/configuration update and which issues to provide toproduct engineering 230. For example, some issues may require updatingor moving a physical aspect or component of a vehicle. In such examples,the configuration adjustment component 226 may determine potentialupdates to the physical aspects and/or controls and provide thisinformation to product engineering 230 for an overhaul/redesign.

In some implementations, the configuration adjustment component 226determine whether to provide information to product engineering 230based on weighted values applied to the information. For example, when aweighted value for a particular piece of information meets a threshold,that information is provided (or not provided) to the configurationadjustment component 226. The configuration adjustment component 226 mayalso identity driver behaviors in a new model (e.g., an Audi A5™) andassociate or compare the behaviors with driving behaviors for adifferent or previous model (e.g., Audi A4™). The determinedsoftware/configuration updates may be communicated to the onboardcomputer 214 of the vehicle 210. The onboard computer 214 may then, forexample, update the contextual/adaptable display 216 or internalprogramming and controls based on the received feature updates.

As an example use case for the automated usage driven engineering system200, a vehicle user triggers fog lights on vehicle 210 consistently whenit is dark outside. This information is detected and monitored by theonboard sensors 212 and the onboard computer 214. The collectedinformation is provides to the gap analysis component 222. The gapanalysis component 222 compares this data to other collectedinformation, such as whether the vehicle user sets the vehicle'sheadlights to an auto adjust mode or whether the headlights are manuallytriggered. Additional contextual information may also be received andused by the gap analysis component 222 to determine potential featureupdates regarding, for example, the fog light controls. This contextualinformation may include, for example, external temperature and humidityas wells as other internal information from other vehicle systems, suchas automatic windshield wiper information.

The gap analysis is provided to the data aggregator component 224 whereother collected information regarding fog light controls from likevehicle models or groups of vehicle models is aggregated. The aggregatedinformation is provided to the configuration adjustment component 226,which employs a machine learning algorithm to, for example, correlatedthe activation of fog lights controls within a particular regional ordemographic population. The configuration adjustment component 226 mayalso determine whether the triggering of the fog light controls is aconsistent or intermittent occurrence and how this information comparesto, for example, fog light controls button in older models of thevehicle. Based on the machine learning algorithm, the configurationadjustment component 226 may determine that the location of the foglight controls is confusing to vehicle users. For example, vehicle usesmay be activating the headlight controls by mistake or, alternatively,activation of the fog light controls may indicate that users are notsatisfied with the brightness of their headlights causing them to switchthe fog lights on to provide additional light. The configurationadjustment component 226 may determine paternal software updates toprovide to the vehicle 210 to, for example, adjust the fog lightcontrols. Additionally, the determined information may be pushed toproduct engineering 230 for further analysis.

As another example, a vehicle user may be traveling for several hoursbut not engaged the cruise control system. The gap analysis component222 may receive the information collected from the vehicle 210 aboutthis behavior. The gap analysis component 222 detects and analyze thebehavior within the given context. The configuration adjustmentcomponent 226 may determine, based on the gap analysis and any receivedaggregated information for the particular vehicle model, to send asoftware update to vehicle 210. The software update may, for example,move the cruise control button to a different location on thecontextual/adaptable display 216. In some implementations, thecontextual/adaptable display 216 (or through a virtual assistant) mayprompt the user vehicle user for confirmation regarding the providedupdate and/or the particular feature. Additionally or alternatively, thepotential feature adjustments may be provided to product engineering 130for further analysis.

FIG. 3 depicts a flow diagram of an example process (300) for employingan automated usage driven engineering system, such as systems 100 and200 depicted in FIGS. 1 and 2 respectively, to automate vehicle featureupdates. Onboard sensors, in conjunction with an onboard computer,detect and monitor (302) information related to an operation of avehicle. For example, the use of cruise controls during a trip. Thecollected information is provided (304) along with any contextualinformation to a gap analysis component. The gap analysis componentcompares (306) actual usage of the operation in the actual context to anexpected usage for the operation in a respective context. A dataaggregator component aggregates (308) the gap analysis of the receiveddata with similar data regarding the operation collected from likevehicle models. A configuration adjustment component employs a machinelearning algorithm to determine (310) a feature update related to theoperation of the vehicle. For example, the feature update maypotentially alleviate or improve an identified issue regarding theoperation. The feature update is provided (312) to the vehicle as asoftware/configuration update. The feature update is provided (314) toproject engineering for further development and possible incorporationinto a next model for the vehicle and the process ends.

Implementations and all of the functional operations described in thisspecification may be realized in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. Implementations may be realized asone or more computer program products, i.e., one or more modules ofcomputer program instructions encoded on a computer readable medium forexecution by, or to control the operation of, data processing apparatus.The computer readable medium may be a machine-readable storage device, amachine-readable storage substrate, a memory device, a composition ofmatter effecting a machine-readable propagated signal, or a combinationof one or more of them. The term “computing system” encompasses allapparatus, devices, and machines for processing data, including by wayof example a programmable processor, a computer, or multiple processorsor computers. The apparatus may include, in addition to hardware, codethat creates an execution environment for the computer program inquestion, e.g., code that constitutes processor firmware, a protocolstack, a database management system, an operating system, or acombination of one or more of them. A propagated signal is anartificially generated signal, e.g., a machine-generated electrical,optical, or electromagnetic signal that is generated to encodeinformation for transmission to suitable receiver apparatus.

A computer program (also known as a program, software, softwareapplication, script, or code) may be written in any appropriate form ofprogramming language, including compiled or interpreted languages, andit may be deployed in any appropriate form, including as a stand-aloneprogram or as a module, component, subroutine, or other unit suitablefor use in a computing environment. A computer program does notnecessarily correspond to a file in a file system. A program may bestored in a portion of a file that holds other programs or data (e.g.,one or more scripts stored in a markup language document), in a singlefile dedicated to the program in question, or in multiple coordinatedfiles (e.g., files that store one or more modules, sub programs, orportions of code). A computer program may be deployed to be executed onone computer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

The processes and logic flows described in this specification may beperformed by one or more programmable processors executing one or morecomputer programs to perform functions by operating on input data andgenerating output. The processes and logic flows may also be performedby, and apparatus may also be implemented as, special purpose logiccircuitry, such as a field programmable gate array (FPGA) or anapplication specific integrated circuit (ASIC).

Processors suitable for the execution of a computer program include, byway of example, both general and special purpose microprocessors, andany one or more processors of any appropriate kind of digital computer.Generally, a processor will receive instructions and data from a readonly memory or a random access memory or both. Elements of a computercan include a processor for performing instructions and one or morememory devices for storing instructions and data. Generally, a computerwill also include, or be operatively coupled to receive data from ortransfer data to, or both, one or more mass storage devices for storingdata, e.g., magnetic, magneto optical disks, or optical disks. However,a computer need not have such devices. Moreover, a computer may beembedded in another device, e.g., a mobile telephone, a personal digitalassistant (PDA), a mobile audio player, a GPS receiver, to name just afew. Computer readable media suitable for storing computer programinstructions and data include all forms of non-volatile memory, mediaand memory devices, including by way of example semiconductor memorydevices, such as erasable programmable read-only memory (EPROM),electrically erasable programmable read-only memory (EEPROM), and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and Compact Disc Read-Only Memory (CD-ROM)and digital versatile disc Read-Only Memory (DVD-ROM) disks. Theprocessor and the memory may be supplemented by, or incorporated in,special purpose logic circuitry.

To provide for interaction with a user, implementations may be realizedon a computer having a display device, such as a cathode ray tube (CRT)or liquid crystal display (LCD) monitor, for displaying information tothe user and a keyboard and a pointing device, e.g., a mouse or atrackball, by which the user may provide input to the computer. Otherkinds of devices may be used to provide for interaction with a user aswell; for example, feedback provided to the user may be any appropriateform of sensory feedback, e.g., visual feedback, auditory feedback, ortactile feedback; and input from the user may be received in anyappropriate form, including acoustic, speech, or tactile input.

Implementations may be realized in a computing system that includes aback end component, e.g., as a data server, or that includes amiddleware component, e.g., an application server, or that includes afront end component, e.g., a client computer having a graphical userinterface or a Web browser through which a user may interact with animplementation, or any appropriate combination of one or more such backend, middleware, Application Programming Interface (API) or front endcomponents. The components of the system may be interconnected by anyappropriate form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (LAN) and a wide area network (WAN), e.g., theInternet.

The computing system may include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of the disclosure or of what maybe claimed, but rather as descriptions of features specific toparticular implementations. Certain features that are described in thisspecification in the context of separate implementations may also beimplemented in combination in a single implementation. Conversely,various features that are described in the context of a singleimplementation may also be implemented in multiple implementationsseparately or in any suitable sub-combination. Moreover, althoughfeatures may be described above as acting in certain combinations andeven initially claimed as such, one or more features from a claimedcombination may in some cases be excised from the combination, and theclaimed combination may be directed to a sub-combination or variation ofa sub-combination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the implementations described above should not beunderstood as requiring such separation in all implementations, and itshould be understood that the described program components and systemsmay generally be integrated together in a single software product orpackaged into multiple software products.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. For example, various formsof the flows shown above may be used, with steps re-ordered, added, orremoved. Accordingly, other implementations are within the scope of thefollowing claims.

What is claimed is:
 1. A computer-implemented method for automatingvehicle feature updates, the method being executed by one or moreprocessors and comprising: receiving telematics data identifying anactual usage of a first vehicle; automatically performing a gapanalysis, using a gap analysis component, to determine a differencebetween the actual usage of the first vehicle and an expected usage ofthe first vehicle based at least in part on the telematics data;determining, using a configuration adjustment component, a plurality offeature updates that are implementable as software updates based atleast in part on the difference between the actual usage of the firstvehicle and the expected usage of the first vehicle; determining aselected feature update from the plurality of feature updates to provideto an onboard computer system of an active vehicle; and updating aselected feature on the onboard computer system of the active vehicleusing the selected feature update when the selected feature update canbe implemented by a software update.
 2. The computer-implemented methodof claim 1, wherein the selected feature update is a modification to asoftware component of the vehicle.
 3. The computer-implemented method ofclaim 2, wherein the software component is a display feature shown on anadaptable display in the vehicle.
 4. The computer-implemented method ofclaim 1 further comprising: assigning a weight value to each of theplurality of feature updates based at least in part on a machinelearning algorithm, and wherein determining the selected feature isdetermined at least in part based on the assigned weight value of afeature update meeting a threshold.
 5. The computer-implemented methodof claim 1, wherein the telematics data is collected by a plurality ofonboard sensors associated with the vehicle.
 6. The computer-implementedmethod of claim 5, wherein the telematics data includes internal vehicleand external vehicle information collected by the onboard sensors. 7.The computer-implemented method of claim 1, wherein the selected featureupdate is a corrective action.
 8. A system, comprising: one or moreprocessors; and a computer-readable storage device coupled to the one ormore processors and having instructions stored thereon which, whenexecuted by the one or more processors, cause the one or more processorsto perform operations for automating vehicle feature updates, theoperations comprising: receiving telematics data identifying an actualusage of a first vehicle; automatically performing a gap analysis, usinga gap analysis component, to determine a difference between the actualusage of the first vehicle and an expected usage of the first vehiclebased at least in part on the telematics data; determining, using aconfiguration adjustment component, a plurality of feature updates thatare implementable as software updates based at least in part on thedifference between the actual usage of the first vehicle and theexpected usage of the first vehicle; determining a selected featureupdate from the plurality of feature updates to provide to an onboardcomputer system of an active vehicle; and updating a selected feature onthe onboard computer system of the active vehicle using the selectedfeature update when the selected feature update can be implemented by asoftware update.
 9. The system of claim 8, wherein the selected featureupdate is a modification to a software component of the vehicle.
 10. Thesystem of claim 9, wherein the software component is a display featureshown on an adaptable display in the vehicle.
 11. The system of claim 8,wherein the operations further comprise: assigning a weight value toeach of the plurality of feature updates based at least in part on amachine learning algorithm, and wherein determining the selected featureis determined at least in part based on the assigned weight value of afeature update meeting a threshold.
 12. The system of claim 8, whereinthe telematics data is collected by a plurality of onboard sensorsassociated with the vehicle.
 13. The system of claim 12, wherein thetelematics data includes internal vehicle and external vehicleinformation collected by the onboard sensors.
 14. The system of claim 8,wherein the selected feature update is a corrective action.
 15. A methodcomprising: receiving telematics data identifying an actual usage of afirst vehicle; automatically performing a gap analysis, using a gapanalysis component, to determine a difference between the actual usageof the first vehicle and an expected usage of the first vehicle based atleast in part on the telematics data; determining, using a configurationadjustment component, a feature update that is implementable as softwareupdates based at least in part on the difference between the actualusage of the first vehicle and the expected usage of the first vehicle;and updating a feature on an onboard computer system of an activevehicle using the feature update when the feature update can beimplemented by a software update.
 16. The method of claim 15, whereinthe feature update is a modification to a software component of thevehicle.
 17. The method of claim 16, wherein the software component is adisplay feature shown on an adaptable display in the vehicle.
 18. Themethod of claim 15, wherein the telematics data is collected by aplurality of onboard sensors associated with the vehicle.
 19. The methodof claim 18, wherein the telematics data includes internal vehicle andexternal vehicle information collected by the onboard sensors.
 20. Themethod of claim 15, wherein the feature update is a corrective action.